#ifndef ED_CORE_H
#define ED_CORE_H

#include <ed_core/global/defs.h>

namespace ed_core
{
class ProgressHandler;

/**
 * @brief The EdCore class is a static toolbox that controls the ed_core library behavior.
 */
class ED_CORE_API EdCore
{
  static bool _edCoreInitialized;
  EdCore();
public:
/**
  * @brief Initializes the ed_core library.
  * This function must be called once per process in order to ensure everything is properly loaded into memory.
  * Calling initEdCore must be done before any other call to the library. Failing to do so may result into undefined behavior.
  * @note Calling initEdCore multiple time has no effect.
  */
  static void init(ed_core::ProgressHandler* progress=nullptr);
};

} // namespace ed_core

#endif // ED_CORE_H

